<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="GNU source-highlight 2.1.2
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite">
<title>ReaLua Examples</title>
</head>
<body bgcolor=#EEEEEE>
<pre><tt><b><font color="#226622">--[[</font></b>
<b><font color="#226622">    ReaLua examples to get you started scripting</font></b>
<b><font color="#226622">    REAPER with Lua!</font></b>

<b><font color="#226622">    They are loaded by the default init.lua, or</font></b>
<b><font color="#226622">    you can load 'em up with</font></b>

<b><font color="#226622">    dofile(reaper.realua.luadir .. "\\examples.lua")</font></b>

<b><font color="#226622">    These examples rely on the functions defined in</font></b>
<b><font color="#226622">    init.lua.</font></b>

<b><font color="#226622">    The example scripts are loaded into the global space,</font></b>
<b><font color="#226622">    so they can usuallualy be executed like this,</font></b>

<b><font color="#226622">    tt = TracksTable()</font></b>

<b><font color="#226622">    The long comments that begin with the "dofile()" are meant</font></b>
<b><font color="#226622">    to be copied and pasted into the ReaLua Window Input Area,</font></b>
<b><font color="#226622">    and show how to run more examples - Do Mo' Stuff!</font></b>
<b><font color="#226622">]]</font></b>


<b><font color="#226622">--[[</font></b><b><font color="#226622">    Quick record arm/clear demostrate power of trax():</font></b>

<b><font color="#226622">    rac({3},true)   arms track 3</font></b>
<b><font color="#226622">    ra {2,3,4}      arms tracks 2,3,4</font></b>
<b><font color="#226622">    rc "piano"      clears rec arm on all tracks with "piano" in them</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">rac</font></b><font color="#990000">(</font><font color="#000080">lit</font><font color="#990000">,</font><font color="#000080"> bac</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> k</font><font color="#990000">,</font><font color="#000080">v </font><b><font color="#0000FF">in</font></b><font color="#000080"> next</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#000000">trax</font></b><font color="#990000">(</font><font color="#000080">lit</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">CSurf_OnRecArmChange</font></b><font color="#990000">(</font><font color="#000080">v</font><font color="#990000">,</font><font color="#000080"> bac</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">ra</font></b><font color="#990000">(</font><font color="#000080">lit</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#000000">rac</font></b><font color="#990000">(</font><font color="#000080">lit</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#0000FF">true</font></b><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">rc</font></b><font color="#990000">(</font><font color="#000080">lit</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#000000">rac</font></b><font color="#990000">(</font><font color="#000080">lit</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#0000FF">false</font></b><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">oneliner</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">loadstring</font></b><font color="#990000">(</font><b><font color="#000000">input</font></b><font color="#990000">(</font><font color="#FF0000">"By Your Command"</font><font color="#990000">)</font><font color="#990000">)</font><font color="#990000">(</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<font color="#000080">reaper</font><font color="#990000">.</font><b><font color="#000000">addMenuCommand</font></b><font color="#990000">(</font><font color="#FF0000">"oneliner()"</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"&amp;Command"</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">1</font><font color="#990000">)</font>

<b><font color="#226622">--[[</font></b>
<b><font color="#226622">        Collect data into Lua</font></b>
<b><font color="#226622">        tables for display, file</font></b>
<b><font color="#226622">        write, whatever::</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> all the params for the fx in one table</font></b>
<b><font color="#226622">--</font></b><b><font color="#226622"> each element is { name, curval }</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">FXParamsTable</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">,</font><font color="#000080"> fxn</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> pt </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">{</font><font color="#FF0000">}</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> j </font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">,</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">TrackFX_GetNumParams</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">,</font><font color="#000080"> fxn</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">TrackFX_GetParamName</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">,</font><font color="#000080"> fxn</font><font color="#990000">,</font><font color="#000080"> j</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">if</font></b><font color="#000080"> ns </font><b><font color="#0000FF">then</font></b>
<font color="#000080">            </font><b><font color="#0000FF">local</font></b><font color="#000080"> curv </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">TrackFX_GetParam</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">,</font><font color="#000080"> fxn</font><font color="#990000">,</font><font color="#000080"> j</font><font color="#990000">)</font>
<font color="#000080">            pt</font><font color="#990000">[</font><font color="#000080">j</font><font color="#990000">]</font><font color="#000080"> </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">{</font><font color="#000080"> name </font><font color="#990000">=</font><font color="#000080"> ns</font><font color="#990000">,</font><font color="#000080"> curval </font><font color="#990000">=</font><font color="#000080"> curv </font><font color="#FF0000">}</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> pt</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> all the FX for the track in one table</font></b>
<b><font color="#226622">--</font></b><b><font color="#226622"> each element is { name, id, {params} }</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">TrackFXTable</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> fxt </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">{</font><font color="#FF0000">}</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> j</font><font color="#990000">=</font><font color="#993399">0</font><font color="#990000">,</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">TrackFX_GetCount</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">TrackFX_GetFXName</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">,</font><font color="#000080"> j</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">if</font></b><font color="#000080"> ns </font><b><font color="#0000FF">then</font></b>
<font color="#000080">            fxt</font><font color="#990000">[</font><font color="#000080">j</font><font color="#990000">]</font><font color="#000080"> </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">{</font>
<font color="#000080">                name </font><font color="#990000">=</font><font color="#000080"> ns</font><font color="#990000">,</font><font color="#000080"> id </font><font color="#990000">=</font><font color="#000080"> j</font><font color="#990000">,</font>
<font color="#000080">                params </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">FXParamsTable</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">,</font><font color="#000080"> j</font><font color="#990000">)</font>
<font color="#000080">            </font><font color="#FF0000">}</font>
<b><font color="#226622">--</font></b><b><font color="#226622">          ptable(fxt[j])</font></b>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> fxt</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> the vital specifics for each track</font></b>
<b><font color="#226622">--</font></b><b><font color="#226622"> { name, id, volume, pan, {fx} }</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">TrackVitals</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><font color="#000080">MediaTrackInfo</font><font color="#990000">.</font><b><font color="#000000">GetName</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">or</font></b><font color="#000080"> </font><font color="#FF0000">"MASTER"</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> vol </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><font color="#000080">MediaTrackInfo</font><font color="#990000">.</font><b><font color="#000000">GetVol</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> panv </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><font color="#000080">MediaTrackInfo</font><font color="#990000">.</font><b><font color="#000000">GetPan</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> tn </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">CSurf_TrackToID</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#0000FF">true</font></b><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">return</font></b>
<font color="#000080">        </font><font color="#FF0000">{</font><font color="#000080">   name </font><font color="#990000">=</font><font color="#000080"> ns</font><font color="#990000">,</font><font color="#000080"> id </font><font color="#990000">=</font><font color="#000080"> tn</font><font color="#990000">,</font><font color="#000080"> volume </font><font color="#990000">=</font><font color="#000080"> vol</font><font color="#990000">,</font><font color="#000080"> pan </font><font color="#990000">=</font><font color="#000080"> panv</font><font color="#990000">,</font>
<font color="#000080">            fx </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">TrackFXTable</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">)</font>
<font color="#000080">        </font><font color="#FF0000">}</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> all the tracks vitals in one table</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">TracksTable</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> tracks </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">{</font><font color="#FF0000">}</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> mt </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">ialltrax</font></b><font color="#990000">(</font><b><font color="#0000FF">true</font></b><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        table</font><font color="#990000">.</font><b><font color="#000000">insert</font></b><font color="#990000">(</font><font color="#000080">tracks</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#000000">TrackVitals</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">)</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> tracks</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--[[</font></b>
<b><font color="#226622">        A single print() happens in computer time</font></b>
<b><font color="#226622">        Repeated print()s happen in human time</font></b>
<b><font color="#226622">        Therefore if the slowness of print()s is</font></b>
<b><font color="#226622">        a problem, just gang up the strings</font></b>
<b><font color="#226622">        and print() it all at once at the end</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintTracksTable</font></b><font color="#990000">(</font><font color="#000080">tt</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> s </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">""</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> k</font><font color="#990000">,</font><font color="#000080">tr </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">tt</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        s </font><font color="#990000">=</font><font color="#000080"> s </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">sprint</font></b><font color="#990000">(</font><font color="#000080"> </font><font color="#FF0000">"Track: "</font><font color="#990000">,</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">id</font><font color="#990000">,</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">name</font><font color="#990000">,</font>
<font color="#000080">                         </font><font color="#FF0000">"vol: "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">volume</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"pan: "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">pan </font><font color="#990000">)</font>

<font color="#000080">            </font><b><font color="#0000FF">for</font></b><font color="#000080"> kf</font><font color="#990000">,</font><font color="#000080"> fx </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">tr</font><font color="#990000">.</font><font color="#000080">fx</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">                    s </font><font color="#990000">=</font><font color="#000080"> s </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">sprint</font></b><font color="#990000">(</font><font color="#000080"> </font><font color="#FF0000">"\tFX: "</font><font color="#990000">,</font><font color="#000080"> fx</font><font color="#990000">.</font><font color="#000080">id</font><font color="#990000">,</font><font color="#000080"> fx</font><font color="#990000">.</font><font color="#000080">name </font><font color="#990000">)</font>

<font color="#000080">                    </font><b><font color="#0000FF">for</font></b><font color="#000080"> kp</font><font color="#990000">,</font><font color="#000080"> param </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">fx</font><font color="#990000">.</font><font color="#000080">params</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">                            s </font><font color="#990000">=</font><font color="#000080"> s </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">sprint</font></b><font color="#990000">(</font><font color="#000080"> </font><font color="#FF0000">"\t\t Param "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> kp</font><font color="#990000">,</font><font color="#000080"> param</font><font color="#990000">.</font><font color="#000080">name</font><font color="#990000">,</font><font color="#000080"> param</font><font color="#990000">.</font><font color="#000080">curval </font><font color="#990000">)</font>
<font color="#000080">                    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">            </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#000080">s</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> May be useful to make it into skinny html!</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">TracksTable2HtmlOLD</font></b><font color="#990000">(</font><font color="#000080">tt</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> row template stamper for Track row</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">ths</font></b><font color="#990000">(</font><font color="#000080">tr</font><font color="#990000">)</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> track html string</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> th </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">"\t&lt;tr&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t\t&lt;td&gt;Track:&lt;/td&gt;&lt;td&gt;trid&lt;/td&gt;&lt;td&gt;&lt;b&gt;trname&lt;/b&gt;&lt;/td&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t\t&lt;td&gt;vol: trvolume&lt;/td&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t\t&lt;td&gt;pan: trpan&lt;/td&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t&lt;/tr&gt;\r\n"</font>

<font color="#000080">        th </font><font color="#990000">=</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">gsub</font></b><font color="#990000">(</font><font color="#000080">th</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"trid"</font><font color="#990000">,</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">id</font><font color="#990000">)</font>
<font color="#000080">        th </font><font color="#990000">=</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">gsub</font></b><font color="#990000">(</font><font color="#000080">th</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"trname"</font><font color="#990000">,</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">name</font><font color="#990000">)</font>
<font color="#000080">        th </font><font color="#990000">=</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">gsub</font></b><font color="#990000">(</font><font color="#000080">th</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"trvolume"</font><font color="#990000">,</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">volume</font><font color="#990000">)</font>
<font color="#000080">        th </font><font color="#990000">=</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">gsub</font></b><font color="#990000">(</font><font color="#000080">th</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"trpan"</font><font color="#990000">,</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">pan</font><font color="#990000">)</font>

<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> th</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> row template stamper for Effect row</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">fhs</font></b><font color="#990000">(</font><font color="#000080">fx</font><font color="#990000">)</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> fx html string</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> fh </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">"\t&lt;tr&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t\t&lt;td&gt;&lt;/td&gt;&lt;td&gt;Effect:&lt;/td&gt;&lt;td&gt;fxid&lt;/td&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t\t&lt;td&gt;&lt;b&gt;fxname&lt;/b&gt;&lt;/td&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t&lt;/tr&gt;\r\n"</font>

<font color="#000080">        fh </font><font color="#990000">=</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">gsub</font></b><font color="#990000">(</font><font color="#000080">fh</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"fxid"</font><font color="#990000">,</font><font color="#000080"> fx</font><font color="#990000">.</font><font color="#000080">id</font><font color="#990000">)</font>
<font color="#000080">        fh </font><font color="#990000">=</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">gsub</font></b><font color="#990000">(</font><font color="#000080">fh</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"fxname"</font><font color="#990000">,</font><font color="#000080"> fx</font><font color="#990000">.</font><font color="#000080">name</font><font color="#990000">)</font>

<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> fh</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> row template stamper for Param row</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">phs</font></b><font color="#990000">(</font><font color="#000080">kp</font><font color="#990000">,</font><font color="#000080"> param</font><font color="#990000">)</font><font color="#000080">   </font><b><font color="#226622">--</font></b><b><font color="#226622"> param html string</font></b>
<font color="#000080">        ph </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">"\t&lt;tr&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t\t&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t\t&lt;td&gt;Param:&lt;/td&gt;&lt;td&gt;kp&lt;/td&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t\t&lt;td&gt;paramname&lt;/td&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t\t&lt;td&gt;paramcurval&lt;/td&gt;\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font>
<font color="#000080">        </font><font color="#FF0000">"\t&lt;/tr&gt;\r\n"</font>

<font color="#000080">        ph </font><font color="#990000">=</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">gsub</font></b><font color="#990000">(</font><font color="#000080">ph</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"kp"</font><font color="#990000">,</font><font color="#000080"> kp</font><font color="#990000">)</font>
<font color="#000080">        ph </font><font color="#990000">=</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">gsub</font></b><font color="#990000">(</font><font color="#000080">ph</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"paramname"</font><font color="#990000">,</font><font color="#000080"> param</font><font color="#990000">.</font><font color="#000080">name</font><font color="#990000">)</font>
<font color="#000080">        ph </font><font color="#990000">=</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">gsub</font></b><font color="#990000">(</font><font color="#000080">ph</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"paramcurval"</font><font color="#990000">,</font><font color="#000080"> param</font><font color="#990000">.</font><font color="#000080">curval</font><font color="#990000">)</font>

<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> ph</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> begin accumulating our html</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> ah </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">'&lt;table border="1"&gt;\r\n'</font>

<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> k</font><font color="#990000">,</font><font color="#000080">tr </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">tt</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> th </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">ths</font></b><font color="#990000">(</font><font color="#000080">tr</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">for</font></b><font color="#000080"> kf</font><font color="#990000">,</font><font color="#000080"> fx </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">tr</font><font color="#990000">.</font><font color="#000080">fx</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">            </font><b><font color="#0000FF">local</font></b><font color="#000080"> fh </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">fhs</font></b><font color="#990000">(</font><font color="#000080">fx</font><font color="#990000">)</font>
<font color="#000080">            </font><b><font color="#0000FF">for</font></b><font color="#000080"> kp</font><font color="#990000">,</font><font color="#000080"> param </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">fx</font><font color="#990000">.</font><font color="#000080">params</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">                </font><b><font color="#0000FF">local</font></b><font color="#000080"> ph </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">phs</font></b><font color="#990000">(</font><font color="#000080">kp</font><font color="#990000">,</font><font color="#000080"> param</font><font color="#990000">)</font>
<font color="#000080">                fh </font><font color="#990000">=</font><font color="#000080"> fh </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> ph</font>
<font color="#000080">            </font><b><font color="#0000FF">end</font></b>
<font color="#000080">            th </font><font color="#990000">=</font><font color="#000080"> th </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> fh</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">        ah </font><font color="#990000">=</font><font color="#000080"> ah </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> th</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    ah </font><font color="#990000">=</font><font color="#000080"> ah </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><font color="#FF0000">"&lt;/table&gt;"</font>
<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> ah</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">TracksTable2Html</font></b><font color="#990000">(</font><font color="#000080">tt</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">require</font></b><font color="#990000">(</font><font color="#FF0000">"htk"</font><font color="#990000">)</font>

<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">n</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">if</font></b><font color="#000080"> n </font><font color="#990000">&lt;</font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0</font><font color="#000080"> </font><b><font color="#0000FF">then</font></b>
<font color="#000080">            </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><font color="#FF0000">""</font>
<font color="#000080">        </font><b><font color="#0000FF">else</font></b>
<font color="#000080">            </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><font color="#FF0000">"\t"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">n</font><font color="#990000">-</font><font color="#993399">1</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> row template stamper for Track row</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">ths</font></b><font color="#990000">(</font><font color="#000080">tr</font><font color="#990000">,</font><font color="#000080"> tl</font><font color="#990000">)</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> track html string</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> tl </font><font color="#990000">=</font><font color="#000080"> tl </font><b><font color="#0000FF">or</font></b><font color="#000080"> </font><font color="#993399">0</font>
<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TR </font><font color="#FF0000">{</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">+</font><font color="#993399">1</font><font color="#990000">)</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#000080"> </font><font color="#FF0000">"Track "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">id </font><font color="#FF0000">}</font><font color="#990000">,</font>
<font color="#000080">                        htk</font><font color="#990000">.</font><font color="#000080">TH </font><font color="#FF0000">{</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">name </font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">+</font><font color="#993399">1</font><font color="#990000">)</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#000080"> </font><font color="#FF0000">"vol: "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">volume </font><font color="#FF0000">}</font><font color="#990000">,</font>
<font color="#000080">                        htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#000080"> </font><font color="#FF0000">"pan: "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> tr</font><font color="#990000">.</font><font color="#000080">pan </font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">)</font>
<font color="#000080">        </font><font color="#FF0000">}</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> row template stamper for Effect row</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">fhs</font></b><font color="#990000">(</font><font color="#000080">fx</font><font color="#990000">,</font><font color="#000080"> tl</font><font color="#990000">)</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> fx html string</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> tl </font><font color="#990000">=</font><font color="#000080"> tl </font><b><font color="#0000FF">or</font></b><font color="#000080"> </font><font color="#993399">0</font>
<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TR </font><font color="#FF0000">{</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">+</font><font color="#993399">1</font><font color="#990000">)</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#000080"> </font><font color="#FF0000">"Effect "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> fx</font><font color="#990000">.</font><font color="#000080">id </font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">+</font><font color="#993399">1</font><font color="#990000">)</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TH </font><font color="#FF0000">{</font><font color="#000080"> fx</font><font color="#990000">.</font><font color="#000080">name </font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">)</font>
<font color="#000080">        </font><font color="#FF0000">}</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> row template stamper for Param row</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">phs</font></b><font color="#990000">(</font><font color="#000080">kp</font><font color="#990000">,</font><font color="#000080"> param</font><font color="#990000">,</font><font color="#000080"> tl</font><font color="#990000">)</font><font color="#000080">   </font><b><font color="#226622">--</font></b><b><font color="#226622"> param html string</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> tl </font><font color="#990000">=</font><font color="#000080"> tl </font><b><font color="#0000FF">or</font></b><font color="#000080"> </font><font color="#993399">0</font>
<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TR </font><font color="#FF0000">{</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">+</font><font color="#993399">1</font><font color="#990000">)</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">+</font><font color="#993399">1</font><font color="#990000">)</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#000080"> </font><font color="#FF0000">"Param "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> kp </font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">+</font><font color="#993399">1</font><font color="#990000">)</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#000080"> param</font><font color="#990000">.</font><font color="#000080">name </font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">+</font><font color="#993399">1</font><font color="#990000">)</font><font color="#990000">,</font><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TD </font><font color="#FF0000">{</font><font color="#000080"> param</font><font color="#990000">.</font><font color="#000080">curval </font><font color="#FF0000">}</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#990000">,</font>
<font color="#000080">            </font><b><font color="#000000">tabs</font></b><font color="#990000">(</font><font color="#000080">tl</font><font color="#990000">)</font>
<font color="#000080">        </font><font color="#FF0000">}</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> begin accumulating our html</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> ah </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">""</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> k</font><font color="#990000">,</font><font color="#000080">tr </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">tt</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> th </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">ths</font></b><font color="#990000">(</font><font color="#000080">tr</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">1</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">for</font></b><font color="#000080"> kf</font><font color="#990000">,</font><font color="#000080"> fx </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">tr</font><font color="#990000">.</font><font color="#000080">fx</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">            </font><b><font color="#0000FF">local</font></b><font color="#000080"> fh </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">fhs</font></b><font color="#990000">(</font><font color="#000080">fx</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">2</font><font color="#990000">)</font>
<font color="#000080">            </font><b><font color="#0000FF">for</font></b><font color="#000080"> kp</font><font color="#990000">,</font><font color="#000080"> param </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">fx</font><font color="#990000">.</font><font color="#000080">params</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">                </font><b><font color="#0000FF">local</font></b><font color="#000080"> ph </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">phs</font></b><font color="#990000">(</font><font color="#000080">kp</font><font color="#990000">,</font><font color="#000080"> param</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">3</font><font color="#990000">)</font>
<font color="#000080">                fh </font><font color="#990000">=</font><font color="#000080"> fh </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> ph</font>
<font color="#000080">            </font><b><font color="#0000FF">end</font></b>
<font color="#000080">            th </font><font color="#990000">=</font><font color="#000080"> th </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> fh</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">        ah </font><font color="#990000">=</font><font color="#000080"> ah </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> th</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> htk</font><font color="#990000">.</font><font color="#000080">TABLE </font><font color="#FF0000">{</font><font color="#000080"> border</font><font color="#990000">=</font><font color="#993399">1</font><font color="#990000">,</font><font color="#000080"> ah</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"\n"</font><font color="#FF0000">}</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> put it in a file</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">TracksTable2HtmlFile</font></b><font color="#990000">(</font><font color="#000080">tt</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> h </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">TracksTable2Html</font></b><font color="#990000">(</font><font color="#000080">tt</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">input</font></b><font color="#990000">(</font><font color="#FF0000">"Save to:"</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"N:\\tracks.html"</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> f </font><font color="#990000">=</font><font color="#000080"> io</font><font color="#990000">.</font><b><font color="#000000">open</font></b><font color="#990000">(</font><font color="#000080">ns</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"w"</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">f:write</font></b><font color="#990000">(</font><font color="#000080">h</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">f:close</font></b><font color="#990000">(</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">ShowTracksTable</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">require</font></b><font color="#990000">(</font><font color="#FF0000">"wx"</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">if</font></b><font color="#000080"> wx </font><font color="#990000">=</font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#0000FF">nil</font></b><font color="#000080"> </font><b><font color="#0000FF">then</font></b><font color="#000080"> </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> ht </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">TracksTable2Html</font></b><font color="#990000">(</font><b><font color="#000000">TracksTable</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#990000">)</font>

<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> frame </font><font color="#990000">=</font><font color="#000080"> wx</font><font color="#990000">.</font><b><font color="#000000">wxFrame</font></b><font color="#990000">(</font><font color="#000080">   wx</font><font color="#990000">.</font><font color="#000080">NULL</font><font color="#990000">,</font><font color="#000080"> wx</font><font color="#990000">.</font><font color="#000080">wxID_ANY</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"Tracks"</font><font color="#990000">,</font>
<font color="#000080">                                wx</font><font color="#990000">.</font><font color="#000080">wxDefaultPosition</font><font color="#990000">,</font><font color="#000080"> wx</font><font color="#990000">.</font><b><font color="#000000">wxSize</font></b><font color="#990000">(</font><font color="#993399">800</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">600</font><font color="#990000">)</font><font color="#990000">,</font>
<font color="#000080">                                wx</font><font color="#990000">.</font><font color="#000080">wxDEFAULT_FRAME_STYLE </font><font color="#990000">)</font>

<font color="#000080">    </font><b><font color="#000000">frame:Connect</font></b><font color="#990000">(</font><font color="#000080">wx</font><font color="#990000">.</font><font color="#000080">wxID_EXIT</font><font color="#990000">,</font><font color="#000080"> wx</font><font color="#990000">.</font><font color="#000080">wxEVT_COMMAND_MENU_SELECTED</font><font color="#990000">,</font>
<font color="#000080">        </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><font color="#990000">(</font><font color="#000080">event</font><font color="#990000">)</font>
<font color="#000080">            </font><b><font color="#000000">frame:Close</font></b><font color="#990000">(</font><b><font color="#0000FF">true</font></b><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b><font color="#000080"> </font><font color="#990000">)</font>


<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> hp </font><font color="#990000">=</font><font color="#000080"> wx</font><font color="#990000">.</font><b><font color="#000000">wxLuaHtmlWindow</font></b><font color="#990000">(</font><font color="#000080">frame</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">hp:SetPage</font></b><font color="#990000">(</font><font color="#000080">ht</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">frame:Show</font></b><font color="#990000">(</font><b><font color="#0000FF">true</font></b><font color="#990000">)</font>
<font color="#000080">    wx</font><font color="#990000">.</font><b><font color="#000000">wxGetApp</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#990000">:</font><b><font color="#000000">MainLoop</font></b><font color="#990000">(</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--[[</font></b>
<b><font color="#226622">tt = TracksTable()</font></b>
<b><font color="#226622">PrintTracksTable(tt)</font></b>
<b><font color="#226622">print(TracksTable2Html(tt))</font></b>
<b><font color="#226622">TracksTable2HtmlFile(tt)</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">wxd</font></b><font color="#990000">(</font><font color="#000080">f</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">require</font></b><font color="#990000">(</font><font color="#FF0000">"wx"</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> wxPath </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">"lib\\wx\\samples"</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> wxExt </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">".wx.lua"</font>
<font color="#000080">    </font><b><font color="#000000">dofile</font></b><font color="#990000">(</font><font color="#000080">wxPath </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><font color="#FF0000">"\\"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> f </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> wxExt</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>


<b><font color="#226622">--[[</font></b>
<b><font color="#226622">    reaper.addMenuCommand("ShowTracksTable()","Track Details")</font></b>
<b><font color="#226622">    reaper.addMenuCommand("wxd 'calculator'","Calculator")</font></b>
<b><font color="#226622">    reaper.addMenuCommand("wxd 'dialog'", "Temperature")</font></b>
<b><font color="#226622">-- Because you need to know the absolute temperature</font></b>
<b><font color="#226622">-- of your studio!!</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#000000">require</font></b><font color="#990000">(</font><font color="#FF0000">"pan"</font><font color="#990000">)</font>

<b><font color="#0000FF">for</font></b><font color="#000080"> k </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">pairs</font></b><font color="#990000">(</font><font color="#000080">pan</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">    </font><b><font color="#0000FF">if</font></b><font color="#000080"> </font><b><font color="#000000">k:sub</font></b><font color="#990000">(</font><font color="#993399">1</font><font color="#990000">,</font><font color="#993399">1</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">~</font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">"_"</font><font color="#000080"> </font><b><font color="#0000FF">then</font></b>
<font color="#000080">        reaper</font><font color="#990000">.</font><b><font color="#000000">addMenuCommand</font></b><font color="#990000">(</font><font color="#000080">  </font><font color="#FF0000">"pan."</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> k </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><font color="#FF0000">"()"</font><font color="#990000">,</font>
<font color="#000080">                                </font><font color="#FF0000">"Pan "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> k </font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> select only one track (this is not trax-aware)</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">SelectOnly</font></b><font color="#990000">(</font><font color="#000080">tn</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> i </font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">,</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">GetNumTracks</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> desel </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">CSurf_TrackFromID</font></b><font color="#990000">(</font><font color="#000080"> i</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#0000FF">false</font></b><font color="#000080"> </font><font color="#990000">)</font>
<font color="#000080">        reaper</font><font color="#990000">.</font><b><font color="#000000">SetTrackSelected</font></b><font color="#990000">(</font><font color="#000080"> desel</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#0000FF">false</font></b><font color="#000080"> </font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> sel </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">CSurf_TrackFromID</font></b><font color="#990000">(</font><font color="#000080"> tn</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#0000FF">false</font></b><font color="#000080"> </font><font color="#990000">)</font>
<font color="#000080">    reaper</font><font color="#990000">.</font><b><font color="#000000">SetTrackSelected</font></b><font color="#990000">(</font><font color="#000080"> sel</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#0000FF">true</font></b><font color="#000080"> </font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> _Enums map nicely to Lua iterators:</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> iterate over the given reaper enum function</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">ireanum</font></b><font color="#990000">(</font><font color="#000080">f</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">iter</font></b><font color="#990000">(</font><font color="#000080">f</font><font color="#990000">,</font><font color="#000080"> i</font><font color="#990000">)</font>
<font color="#000080">        i </font><font color="#990000">=</font><font color="#000080"> i </font><font color="#990000">+</font><font color="#000080"> </font><font color="#993399">1</font>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> nxt</font><font color="#990000">,</font><font color="#000080"> desc </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">f</font></b><font color="#990000">(</font><font color="#000080">i</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">if</font></b><font color="#000080"> nxt </font><font color="#990000">~</font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0</font><font color="#000080"> </font><b><font color="#0000FF">then</font></b>
<font color="#000080">            </font><b><font color="#0000FF">return</font></b><font color="#000080"> i</font><font color="#990000">,</font><font color="#000080"> desc</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> iter</font><font color="#990000">,</font><font color="#000080"> f</font><font color="#990000">,</font><font color="#000080"> </font><font color="#990000">-</font><font color="#993399">1</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> so we can use it in fors</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintSinks</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> nxt</font><font color="#990000">,</font><font color="#000080"> desc </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">ireanum</font></b><font color="#990000">(</font><font color="#000080">reaper</font><font color="#990000">.</font><font color="#000080">PCM_Sink_Enum</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#000080"> </font><font color="#FF0000">"PCM_Sink "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> nxt</font><font color="#990000">,</font><font color="#000080"> desc </font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintPitchModes</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> iterate over Pitch Shift Modes</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">imodes</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> mdx </font><font color="#990000">=</font><font color="#000080"> </font><font color="#990000">-</font><font color="#993399">1</font>
<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">            mdx </font><font color="#990000">=</font><font color="#000080"> mdx </font><font color="#990000">+</font><font color="#000080"> </font><font color="#993399">1</font>
<font color="#000080">            </font><b><font color="#0000FF">local</font></b><font color="#000080"> mode </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">EnumPitchShiftModes</font></b><font color="#990000">(</font><font color="#000080">mdx</font><font color="#990000">)</font>
<font color="#000080">            </font><b><font color="#0000FF">if</font></b><font color="#000080"> mode </font><b><font color="#0000FF">then</font></b>
<font color="#000080">                </font><b><font color="#0000FF">return</font></b><font color="#000080"> mdx</font><font color="#990000">,</font><font color="#000080"> mode</font>
<font color="#000080">            </font><b><font color="#0000FF">end</font></b>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> iterate over Pitch Shift SubModes</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">isubmodes</font></b><font color="#990000">(</font><font color="#000080">mdx</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> sdx </font><font color="#990000">=</font><font color="#000080"> </font><font color="#990000">-</font><font color="#993399">1</font>
<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">            sdx </font><font color="#990000">=</font><font color="#000080"> sdx </font><font color="#990000">+</font><font color="#000080"> </font><font color="#993399">1</font>
<font color="#000080">            </font><b><font color="#0000FF">local</font></b><font color="#000080"> submode </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">EnumPitchShiftSubModes</font></b><font color="#990000">(</font><font color="#000080">mdx</font><font color="#990000">,</font><font color="#000080"> sdx</font><font color="#990000">)</font>
<font color="#000080">            </font><b><font color="#0000FF">if</font></b><font color="#000080"> submode </font><b><font color="#0000FF">then</font></b>
<font color="#000080">                </font><b><font color="#0000FF">return</font></b><font color="#000080"> sdx</font><font color="#990000">,</font><font color="#000080"> submode</font>
<font color="#000080">            </font><b><font color="#0000FF">end</font></b>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> use iterators nestedly</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> s </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">""</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> mdx</font><font color="#990000">,</font><font color="#000080"> mode </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">imodes</font></b><font color="#990000">(</font><font color="#000080">reaper</font><font color="#990000">.</font><font color="#000080">EnumPitchShiftModes</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        s </font><font color="#990000">=</font><font color="#000080"> s </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">sprint</font></b><font color="#990000">(</font><font color="#FF0000">"PitShfMode "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> mdx</font><font color="#990000">,</font><font color="#000080"> mode</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">for</font></b><font color="#000080"> sdx</font><font color="#990000">,</font><font color="#000080"> submode </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">isubmodes</font></b><font color="#990000">(</font><font color="#000080">mdx</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">            s </font><font color="#990000">=</font><font color="#000080"> s </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">sprint</font></b><font color="#990000">(</font><font color="#FF0000">"\tPitSubMode "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> sdx</font><font color="#990000">,</font><font color="#000080"> submode</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#000080">s</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintProjectMarkers</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">imarks</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> mdx </font><font color="#990000">=</font><font color="#000080"> </font><font color="#990000">-</font><font color="#993399">1</font>
<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">            mdx </font><font color="#990000">=</font><font color="#000080"> mdx </font><font color="#990000">+</font><font color="#000080"> </font><font color="#993399">1</font>
<font color="#000080">            </font><b><font color="#0000FF">return</font></b><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">EnumProjectMarkers</font></b><font color="#990000">(</font><font color="#000080">mdx</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#000080">string</font><font color="#990000">.</font><b><font color="#000000">format</font></b><font color="#990000">(</font><font color="#FF0000">"%8s %8s %8s %s"</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"Index"</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"Marker"</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"Position"</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"Name"</font><font color="#990000">)</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> tm </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">imarks</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#000080">string</font><font color="#990000">.</font><b><font color="#000000">format</font></b><font color="#990000">(</font><font color="#FF0000">"%8d %8d %8.3f %s"</font><font color="#990000">,</font>
<font color="#000080">                tm</font><font color="#990000">.</font><font color="#000080">index</font><font color="#990000">,</font><font color="#000080"> tm</font><font color="#990000">.</font><font color="#000080">markrgnindexnumber</font><font color="#990000">,</font>
<font color="#000080">                tm</font><font color="#990000">.</font><font color="#000080">pos</font><font color="#990000">,</font><font color="#000080"> tm</font><font color="#990000">.</font><font color="#000080">name</font><font color="#990000">)</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">ShowProjectMarkers</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">window</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">PrintProjectMarkers</font></b><font color="#990000">(</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<font color="#000080">reaper</font><font color="#990000">.</font><b><font color="#000000">addMenuCommand</font></b><font color="#990000">(</font><font color="#000080">  </font><font color="#FF0000">"ShowProjectMarkers()"</font><font color="#990000">,</font>
<font color="#000080">                        </font><font color="#FF0000">"List Project Markers"</font><font color="#990000">)</font>

<b><font color="#226622">--[[</font></b>
<b><font color="#226622">PrintProjectMarkers()</font></b>
<b><font color="#226622">PrintSinks()</font></b>
<b><font color="#226622">PrintPitchModes()</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintFileInfo</font></b><font color="#990000">(</font><font color="#000080"> filename </font><font color="#990000">)</font>
<font color="#000080">    ps </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">PCM_Source_CreateFromFile</font></b><font color="#990000">(</font><font color="#000080"> filename </font><font color="#990000">)</font>

<font color="#000080">    </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"File Name:\t"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">ps:GetFileName</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"Length (s):\t"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">ps:GetLength</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"Channels:\t"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">ps:GetNumChannels</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"Rate:\t\t"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">ps:GetSampleRate</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font>

<font color="#000080">    </font><b><font color="#000000">ps:Delete</font></b><font color="#990000">(</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--[[</font></b><b><font color="#226622"> use the reaper.keystack(...) function to</font></b>
<b><font color="#226622"> send keystrokes to the Reaper window.  You might want to</font></b>
<b><font color="#226622"> use this instead of reaper.Main_OnCommand() as the keystrokes</font></b>
<b><font color="#226622"> do not change as much as the command numbers do.  They are</font></b>
<b><font color="#226622"> also easier to remember!</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">TogClock</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    reaper</font><font color="#990000">.</font><b><font color="#000000">keystack</font></b><font color="#990000">(</font><font color="#000080"> reaper</font><font color="#990000">.</font><font color="#000080">VK_MENU</font><font color="#990000">,</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">byte</font></b><font color="#990000">(</font><font color="#FF0000">"C"</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#226622">--</font></b><b><font color="#226622"> ALT-C</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">SaveAs</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    reaper</font><font color="#990000">.</font><b><font color="#000000">keystack</font></b><font color="#990000">(</font><font color="#000080"> reaper</font><font color="#990000">.</font><font color="#000080">VK_CONTROL</font><font color="#990000">,</font>
<font color="#000080">                     reaper</font><font color="#990000">.</font><font color="#000080">VK_MENU</font><font color="#990000">,</font>
<font color="#000080">                     string</font><font color="#990000">.</font><b><font color="#000000">byte</font></b><font color="#990000">(</font><font color="#FF0000">"S"</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#226622">--</font></b><b><font color="#226622"> CTRL-ALT-S</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">quit</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    reaper</font><font color="#990000">.</font><b><font color="#000000">keystack</font></b><font color="#990000">(</font><font color="#000080"> reaper</font><font color="#990000">.</font><font color="#000080">VK_CONTROL</font><font color="#990000">,</font><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">byte</font></b><font color="#990000">(</font><font color="#FF0000">"Q"</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> CTRL-Q</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> </font></b><font color="#000080">http://shup.com/Shup/34485/reaper_command-identifiers.txt</font>

<b><font color="#226622">--</font></b><b><font color="#226622"> use the reaper.Main_OnCommand(number, arg) function to</font></b>
<b><font color="#226622">--</font></b><b><font color="#226622"> send commands to Reaper</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">WrapCommand</font></b><font color="#990000">(</font><font color="#000080">number</font><font color="#990000">,</font><font color="#000080"> arg</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">        reaper</font><font color="#990000">.</font><b><font color="#000000">Main_OnCommand</font></b><font color="#990000">(</font><font color="#000080">number</font><font color="#990000">,</font><font color="#000080"> arg</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> they can be in the global space</font></b>

<font color="#000080">SeeFX </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">WrapCommand</font></b><font color="#990000">(</font><font color="#993399">40291</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">)</font><font color="#000080">   </font><b><font color="#226622">--</font></b><b><font color="#226622"> Track: View FX chain for current track</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> wrapped commands in locals make things legibler!</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">DriveNuts</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> rewind </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">WrapCommand</font></b><font color="#990000">(</font><font color="#993399">40042</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">)</font><font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> Transport: Go to start of project</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> play </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">WrapCommand</font></b><font color="#990000">(</font><font color="#993399">1007</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">)</font><font color="#000080">       </font><b><font color="#226622">--</font></b><b><font color="#226622"> Transport: Play</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> pause </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">WrapCommand</font></b><font color="#990000">(</font><font color="#993399">1008</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">)</font><font color="#000080">      </font><b><font color="#226622">--</font></b><b><font color="#226622"> Transport: Pause</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> stop </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">WrapCommand</font></b><font color="#990000">(</font><font color="#993399">1016</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">)</font><font color="#000080">       </font><b><font color="#226622">--</font></b><b><font color="#226622"> Transport: Stop</font></b>

<font color="#000080">    </font><b><font color="#000000">rewind</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> i </font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">1</font><font color="#990000">,</font><font color="#993399">10</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#000000">play</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">        reaper</font><font color="#990000">.</font><b><font color="#000000">sleep</font></b><font color="#990000">(</font><font color="#000080">math</font><font color="#990000">.</font><b><font color="#000000">random</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">*</font><font color="#000080"> </font><font color="#993399">1000</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#000000">pause</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">        reaper</font><font color="#990000">.</font><b><font color="#000000">sleep</font></b><font color="#990000">(</font><font color="#000080">math</font><font color="#990000">.</font><b><font color="#000000">random</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">*</font><font color="#000080"> </font><font color="#993399">1000</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#000000">stop</font></b><font color="#990000">(</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> let's even call xome of Xenakios'ses commands!</font></b>

<font color="#000080">xebase </font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">53003</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> this number changes depending on currently installed plugins</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">xenafil</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">xecmd</font></b><font color="#990000">(</font><font color="#000080">cid</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><b><font color="#000000">WrapCommand</font></b><font color="#990000">(</font><font color="#000080"> cid </font><font color="#990000">+</font><font color="#000080"> xebase </font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> choose </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">xecmd</font></b><font color="#990000">(</font><font color="#993399">17</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#226622">--</font></b><b><font color="#226622"> Xenakios Extensions : Choose Files For Random Insert...</font></b>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> insert </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">xecmd</font></b><font color="#990000">(</font><font color="#993399">18</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#226622">--</font></b><b><font color="#226622"> Xenakios Extensions : Insert Random File</font></b>

<font color="#000080">    </font><b><font color="#000000">choose</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">insert</font></b><font color="#990000">(</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> play "scripts" of commands</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">scripto</font></b><font color="#990000">(</font><font color="#000080">t</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> k</font><font color="#990000">,</font><font color="#000080">v </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">t</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        reaper</font><font color="#990000">.</font><b><font color="#000000">Main_OnCommand</font></b><font color="#990000">(</font><font color="#000080">v</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> pick a random file to add in a new track</font></b>
<b><font color="#226622">--</font></b><b><font color="#226622"> randomize all track colors, rewind and play</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PickNPlay</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    scripto</font><font color="#FF0000">{</font>
<font color="#000080">        </font><font color="#993399">40297</font><font color="#990000">,</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> Track: Unselect all tracks</font></b>
<font color="#000080">        </font><font color="#993399">17</font><font color="#000080"> </font><font color="#990000">+</font><font color="#000080"> xebase</font><font color="#990000">,</font><font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> Xenakios Extensions : Choose Files For Random Insert...</font></b>
<font color="#000080">        </font><font color="#993399">18</font><font color="#000080"> </font><font color="#990000">+</font><font color="#000080"> xebase</font><font color="#990000">,</font><font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> Xenakios Extensions : Insert Random File</font></b>
<font color="#000080">        </font><font color="#993399">40108</font><font color="#990000">,</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> Item Properties: Normalize items</font></b>
<font color="#000080">        </font><font color="#993399">40296</font><font color="#990000">,</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> Track: Select all tracks</font></b>
<font color="#000080">        </font><font color="#993399">40358</font><font color="#990000">,</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> Track: Set selected track colors to random colors</font></b>
<font color="#000080">        </font><font color="#993399">40042</font><font color="#990000">,</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> Transport: Go to start of project</font></b>
<font color="#000080">        </font><font color="#993399">1007</font><font color="#000080">    </font><b><font color="#226622">--</font></b><b><font color="#226622"> Transport: Play</font></b>
<font color="#000080">    </font><font color="#FF0000">}</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--[[</font></b><b><font color="#226622"> or the illegible, un-maintainable!:</font></b>
<b><font color="#226622">scripto{40297, 53020, 53021, 40296, 40358, 40108, 40042, 1007}</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#226622">--[[</font></b>
<b><font color="#226622">TogClock()</font></b>
<b><font color="#226622">SaveAs()</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">InsertMediaHardWay</font></b><font color="#990000">(</font><font color="#000080"> filename </font><font color="#990000">)</font>
<font color="#000080">  </font><b><font color="#0000FF">if</font></b><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">GetNumTracks</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">&lt;</font><font color="#000080"> </font><font color="#993399">1</font><font color="#000080"> </font><b><font color="#0000FF">then</font></b>
<font color="#000080">    reaper</font><font color="#990000">.</font><b><font color="#000000">InsertTrackAtIndex</font></b><font color="#990000">(</font><font color="#000080"> </font><font color="#993399">1</font><font color="#000080"> </font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#0000FF">true</font></b><font color="#000080"> </font><font color="#990000">)</font>
<font color="#000080">  </font><b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> Okay we get a MediaTrack</font></b>
<font color="#000080">    mt </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">CSurf_TrackFromID</font></b><font color="#990000">(</font><font color="#000080"> </font><font color="#993399">1</font><font color="#000080"> </font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#0000FF">false</font></b><font color="#000080"> </font><font color="#990000">)</font>
<b><font color="#226622">--</font></b><b><font color="#226622"> then we get a new MediaItem</font></b>
<font color="#000080">    mi </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">AddMediaItemToTrack</font></b><font color="#990000">(</font><font color="#000080">mt</font><font color="#990000">)</font>

<b><font color="#226622">--</font></b><b><font color="#226622"> this one has no MediaItem_Takeses so</font></b>
<font color="#000080">    mit </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">AddTakeToMediaItem</font></b><font color="#990000">(</font><font color="#000080">mi</font><font color="#990000">)</font>

<font color="#000080">    ps </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">PCM_Source_CreateFromFile</font></b><font color="#990000">(</font><font color="#000080"> filename </font><font color="#990000">)</font>
<font color="#000080">    reaper</font><font color="#990000">.</font><font color="#000080">MediaItemTakeInfo</font><font color="#990000">.</font><b><font color="#000000">SetSource</font></b><font color="#990000">(</font><font color="#000080">mit</font><font color="#990000">,</font><font color="#000080">ps</font><font color="#990000">)</font>

<font color="#000080">    reaper</font><font color="#990000">.</font><font color="#000080">MediaItemInfo</font><font color="#990000">.</font><b><font color="#000000">SetLength</font></b><font color="#990000">(</font><font color="#000080">mi</font><font color="#990000">,</font><font color="#000080"> </font><b><font color="#000000">ps:GetLength</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> sink = reaper.PCM_Sink_CreateMIDIFile("wah.mid", "", 0, 66, 5)</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintMidiInputs</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> idx </font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">,</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">GetNumMIDIInputs</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">GetMIDIInputName</font></b><font color="#990000">(</font><font color="#000080">idx</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">if</font></b><font color="#000080"> ns </font><b><font color="#0000FF">then</font></b>
<font color="#000080">            </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"Midi In "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> idx</font><font color="#990000">,</font><font color="#000080"> ns</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintMidiOutputs</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> idx </font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0</font><font color="#990000">,</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">GetNumMIDIOutputs</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">GetMIDIOutputName</font></b><font color="#990000">(</font><font color="#000080">idx</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">if</font></b><font color="#000080"> ns </font><b><font color="#0000FF">then</font></b>
<font color="#000080">            </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"Midi Out "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> idx</font><font color="#990000">,</font><font color="#000080"> ns</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintResampleModes</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">iresamplemodes</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> mdx </font><font color="#990000">=</font><font color="#000080"> </font><font color="#990000">-</font><font color="#993399">1</font>
<font color="#000080">        </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">            mdx </font><font color="#990000">=</font><font color="#000080"> mdx </font><font color="#990000">+</font><font color="#000080"> </font><font color="#993399">1</font>
<font color="#000080">            </font><b><font color="#0000FF">local</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">Resample_EnumModes</font></b><font color="#990000">(</font><font color="#000080">mdx</font><font color="#990000">)</font>
<font color="#000080">            </font><b><font color="#0000FF">if</font></b><font color="#000080"> ns </font><b><font color="#0000FF">then</font></b><font color="#000080"> </font><b><font color="#0000FF">return</font></b><font color="#000080"> mdx</font><font color="#990000">,</font><font color="#000080"> ns </font><b><font color="#0000FF">end</font></b>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> idx</font><font color="#990000">,</font><font color="#000080"> ns </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">iresamplemodes</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"Resample Mode "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> idx</font><font color="#990000">,</font><font color="#000080"> ns</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintInputChannelNames</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> idx </font><font color="#990000">=</font><font color="#000080"> </font><font color="#990000">-</font><font color="#993399">1</font>
<font color="#000080">    </font><b><font color="#0000FF">repeat</font></b>
<font color="#000080">        idx </font><font color="#990000">=</font><font color="#000080"> idx </font><font color="#990000">+</font><font color="#000080"> </font><font color="#993399">1</font>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">GetInputChannelName</font></b><font color="#990000">(</font><font color="#000080">idx</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">if</font></b><font color="#000080"> ns </font><b><font color="#0000FF">then</font></b>
<font color="#000080">            </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"Input Channel "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> idx</font><font color="#990000">,</font><font color="#000080"> ns</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">until</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#0000FF">nil</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintOutputChannelNames</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> idx </font><font color="#990000">=</font><font color="#000080"> </font><font color="#990000">-</font><font color="#993399">1</font>
<font color="#000080">    </font><b><font color="#0000FF">repeat</font></b>
<font color="#000080">        idx </font><font color="#990000">=</font><font color="#000080"> idx </font><font color="#990000">+</font><font color="#000080"> </font><font color="#993399">1</font>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">GetOutputChannelName</font></b><font color="#990000">(</font><font color="#000080">idx</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">if</font></b><font color="#000080"> ns </font><b><font color="#0000FF">then</font></b>
<font color="#000080">            </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"Output Channel "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> idx</font><font color="#990000">,</font><font color="#000080"> ns</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">until</font></b><font color="#000080"> ns </font><font color="#990000">=</font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#0000FF">nil</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--[[</font></b>
<b><font color="#226622">PrintMidiInputs()</font></b>
<b><font color="#226622">PrintMidiOutputs()</font></b>
<b><font color="#226622">PrintResampleModes()</font></b>
<b><font color="#226622">PrintInputChannelNames()</font></b>
<b><font color="#226622">PrintOutputChannelNames()</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">StartMidiRec</font></b><font color="#990000">(</font><font color="#000080"> inid </font><font color="#990000">)</font>
<font color="#000080">    mip </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">CreateMIDIInput</font></b><font color="#990000">(</font><font color="#000080">inid</font><font color="#990000">)</font><font color="#990000">;</font><font color="#000080"> </font><b><font color="#226622">--</font></b><b><font color="#226622"> print(mip)</font></b>

<font color="#000080">    </font><b><font color="#000000">mip:start</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">mip:RunPreNoteTracking</font></b><font color="#990000">(</font><font color="#993399">1</font><font color="#990000">)</font>

<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> mip</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">StopMidiRec</font></b><font color="#990000">(</font><font color="#000080"> mip</font><font color="#990000">,</font><font color="#000080"> ts </font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">mip:stop</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">mip:SwapBufs</font></b><font color="#990000">(</font><font color="#000080">ts</font><font color="#990000">)</font>
<font color="#000080">    mel </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">mip:GetReadBuf</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#990000">;</font><font color="#000080"> </font><b><font color="#226622">--</font></b><b><font color="#226622"> print(mel:GetSize())</font></b>
<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> mel</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">MidiEvents</font></b><font color="#990000">(</font><font color="#000080">mel</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> id </font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> ml </font><font color="#990000">=</font><font color="#000080"> mel</font>
<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> </font><b><font color="#0000FF">function</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> nxt</font><font color="#990000">,</font><font color="#000080"> met </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">ml:EnumItems</font></b><font color="#990000">(</font><font color="#000080">id</font><font color="#990000">)</font>
<font color="#000080">        id </font><font color="#990000">=</font><font color="#000080"> id </font><font color="#990000">+</font><font color="#000080"> </font><font color="#993399">1</font>
<font color="#000080">        </font><b><font color="#0000FF">if</font></b><font color="#000080"> nxt </font><font color="#990000">~</font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0</font><font color="#000080"> </font><b><font color="#0000FF">then</font></b>
<font color="#000080">            </font><b><font color="#0000FF">return</font></b><font color="#000080"> id</font><font color="#990000">-</font><font color="#993399">1</font><font color="#990000">,</font><font color="#000080"> met</font>
<font color="#000080">        </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">PrintMidiEvents</font></b><font color="#990000">(</font><font color="#000080">mel</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> id</font><font color="#990000">,</font><font color="#000080"> met </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">MidiEvents</font></b><font color="#990000">(</font><font color="#000080">mel</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#000080"> </font><font color="#FF0000">"Midi Event "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> id</font><font color="#990000">,</font><font color="#000080"> met </font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--[[</font></b>
<b><font color="#226622">PrintMidiInputs()</font></b>
<b><font color="#226622">mn = tonumber( input("Enter a Midi Input number", "1") )</font></b>
<b><font color="#226622">mi = StartMidiRec(mn)</font></b>
<b><font color="#226622">sn = tonumber( input("Play something\r\nEnter a timestamp") )</font></b>
<b><font color="#226622">ml = StopMidiRec( mi, sn )</font></b>
<b><font color="#226622">PrintMidiEvents(ml)</font></b>
<b><font color="#226622">]]</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">propen</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">  </font><b><font color="#000000">require</font></b><font color="#990000">(</font><font color="#FF0000">'lfs'</font><font color="#990000">)</font>
<font color="#000080">  </font><b><font color="#0000FF">if</font></b><font color="#000080"> lfs </font><b><font color="#0000FF">then</font></b>
<font color="#000080">    p </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">"Open Project In\r\n"</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> lfs</font><font color="#990000">.</font><b><font color="#000000">currentdir</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    reaper</font><font color="#990000">.</font><b><font color="#000000">Main_openProject</font></b><font color="#990000">(</font><font color="#000080"> </font><b><font color="#000000">input</font></b><font color="#990000">(</font><font color="#000080"> p</font><font color="#990000">,</font><font color="#000080"> </font><font color="#FF0000">"rowboat.rpp"</font><font color="#000080"> </font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font>
<font color="#000080">    reaper</font><font color="#990000">.</font><b><font color="#000000">CSurf_OnPlay</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">input</font></b><font color="#990000">(</font><font color="#000080"> </font><font color="#FF0000">"Hit Return to Stop It!"</font><font color="#000080"> </font><font color="#990000">)</font>
<font color="#000080">    reaper</font><font color="#990000">.</font><b><font color="#000000">CSurf_OnStop</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">  </font><b><font color="#0000FF">end</font></b>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--[[</font></b>
<b><font color="#226622">tt = TracksTable()</font></b>
<b><font color="#226622">PrintTracksTable(tt)</font></b>
<b><font color="#226622">PrintSinks()</font></b>
<b><font color="#226622">PrintPitchModes()</font></b>
<b><font color="#226622">PrintMidiInputs()</font></b>
<b><font color="#226622">PrintMidiOutputs()</font></b>
<b><font color="#226622">PrintResampleModes()</font></b>
<b><font color="#226622">PrintInputChannelNames()</font></b>
<b><font color="#226622">PrintOutputChannelNames()</font></b>
<b><font color="#226622">]]</font></b>


<b><font color="#226622">--</font></b><b><font color="#226622"> lua for midi heppers</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> takes a Lua number and returns</font></b>
<b><font color="#226622">--</font></b><b><font color="#226622"> a table of its 7-bit wyrds</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">turn7</font></b><font color="#990000">(</font><font color="#000080">num</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> t </font><font color="#990000">=</font><font color="#000080"> </font><font color="#FF0000">{</font><font color="#FF0000">}</font>

<font color="#000080">    </font><b><font color="#0000FF">while</font></b><font color="#000080"> num </font><font color="#990000">&gt;</font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0x80</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b><font color="#000080">        </font><b><font color="#226622">--</font></b><b><font color="#226622"> does not fit in seven bits</font></b>
<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> low7 </font><font color="#990000">=</font><font color="#000080"> num </font><font color="#990000">%</font><font color="#000080"> </font><font color="#993399">0x80</font><font color="#000080">     </font><b><font color="#226622">--</font></b><b><font color="#226622"> isolate the low 7 bits</font></b>
<b><font color="#226622">--</font></b><b><font color="#226622">      print("\n" , low7)</font></b>
<font color="#000080">        table</font><font color="#990000">.</font><b><font color="#000000">insert</font></b><font color="#990000">(</font><font color="#000080">t</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">1</font><font color="#990000">,</font><font color="#000080"> low7</font><font color="#990000">)</font>

<font color="#000080">        </font><b><font color="#0000FF">local</font></b><font color="#000080"> rest </font><font color="#990000">=</font><font color="#000080"> num </font><font color="#990000">-</font><font color="#000080"> low7     </font><b><font color="#226622">--</font></b><b><font color="#226622"> "mask" out low 7 bits</font></b>
<font color="#000080">        num </font><font color="#990000">=</font><font color="#000080"> rest </font><font color="#990000">/</font><font color="#000080"> </font><font color="#993399">0x80</font><font color="#000080">       </font><b><font color="#226622">--</font></b><b><font color="#226622"> shift right 7 bits</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    table</font><font color="#990000">.</font><b><font color="#000000">insert</font></b><font color="#990000">(</font><font color="#000080">t</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">1</font><font color="#990000">,</font><font color="#000080"> num</font><font color="#990000">)</font><font color="#000080">         </font><b><font color="#226622">--</font></b><b><font color="#226622"> the last low seven bits</font></b>

<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> t</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">check7</font></b><font color="#990000">(</font><font color="#000080">num</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> t </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">turn7</font></b><font color="#990000">(</font><font color="#000080">num</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> sum </font><font color="#990000">=</font><font color="#000080"> </font><font color="#993399">0</font>
<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> k</font><font color="#990000">,</font><font color="#000080">v </font><b><font color="#0000FF">in</font></b><font color="#000080"> </font><b><font color="#000000">opairs</font></b><font color="#990000">(</font><font color="#000080">t</font><font color="#990000">)</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        sum </font><font color="#990000">=</font><font color="#000080"> sum </font><font color="#990000">+</font><font color="#000080"> v </font><font color="#990000">*</font><font color="#000080"> </font><font color="#993399">128</font><font color="#000080"> </font><font color="#990000">^</font><font color="#000080"> </font><font color="#990000">(</font><font color="#000080">#t </font><font color="#990000">-</font><font color="#000080"> k</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>
<font color="#000080">    </font><b><font color="#000000">print</font></b><font color="#990000">(</font><font color="#FF0000">"num: "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> num </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><font color="#FF0000">" sum: "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> sum </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><font color="#FF0000">" equal "</font><font color="#000080"> </font><font color="#990000">.</font><font color="#990000">.</font><font color="#000080"> </font><b><font color="#000000">tostring</font></b><font color="#990000">(</font><font color="#000080">num </font><font color="#990000">=</font><font color="#990000">=</font><font color="#000080"> sum</font><font color="#990000">)</font><font color="#990000">:</font><b><font color="#000000">upper</font></b><font color="#990000">(</font><font color="#990000">)</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#226622">--</font></b><b><font color="#226622"> returns a Lua string containing</font></b>
<b><font color="#226622">--</font></b><b><font color="#226622"> a MIDI "variable-length" value</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">evl</font></b><font color="#990000">(</font><font color="#000080">num</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> tbl </font><font color="#990000">=</font><font color="#000080"> </font><b><font color="#000000">turn7</font></b><font color="#990000">(</font><font color="#000080">num</font><font color="#990000">)</font>

<font color="#000080">    </font><b><font color="#0000FF">for</font></b><font color="#000080"> i</font><font color="#990000">=</font><font color="#993399">1</font><font color="#990000">,</font><font color="#000080"> # tbl </font><font color="#990000">-</font><font color="#000080"> </font><font color="#993399">1</font><font color="#000080"> </font><b><font color="#0000FF">do</font></b>
<font color="#000080">        tbl</font><font color="#990000">[</font><font color="#000080">i</font><font color="#990000">]</font><font color="#000080"> </font><font color="#990000">=</font><font color="#000080"> tbl</font><font color="#990000">[</font><font color="#000080">i</font><font color="#990000">]</font><font color="#000080"> </font><font color="#990000">+</font><font color="#000080"> </font><font color="#993399">0x80</font><font color="#000080">  </font><b><font color="#226622">--</font></b><b><font color="#226622"> set high bit means "byte(s) to follow"</font></b>
<font color="#000080">    </font><b><font color="#0000FF">end</font></b>

<font color="#000080">    </font><b><font color="#0000FF">return</font></b><font color="#000080"> string</font><font color="#990000">.</font><b><font color="#000000">char</font></b><font color="#990000">(</font><font color="#000080"> </font><b><font color="#000000">unpack</font></b><font color="#990000">(</font><font color="#000080">tbl</font><font color="#990000">)</font><font color="#000080"> </font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>

<b><font color="#0000FF">function</font></b><font color="#000080"> </font><b><font color="#000000">playNote</font></b><font color="#990000">(</font><font color="#000080">nn</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> nnn </font><font color="#990000">=</font><font color="#000080"> nn </font><b><font color="#0000FF">or</font></b><font color="#000080"> </font><font color="#993399">0x7F</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> mo </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">CreateMIDIOutput</font></b><font color="#990000">(</font><font color="#993399">3</font><font color="#990000">,</font><b><font color="#0000FF">false</font></b><font color="#990000">)</font>


<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> non </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">makeMidiEvent</font></b><font color="#990000">(</font><font color="#993399">0</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0x90</font><font color="#990000">,</font><font color="#000080"> nnn</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0x7F</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> nof </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">makeMidiEvent</font></b><font color="#990000">(</font><font color="#993399">0</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0x80</font><font color="#990000">,</font><font color="#000080"> nnn</font><font color="#990000">,</font><font color="#000080"> </font><font color="#993399">0x7F</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#0000FF">local</font></b><font color="#000080"> mel </font><font color="#990000">=</font><font color="#000080"> reaper</font><font color="#990000">.</font><b><font color="#000000">makeMidiEventList</font></b><font color="#990000">(</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">mel:AddItem</font></b><font color="#990000">(</font><font color="#000080">non</font><font color="#990000">)</font>
<font color="#000080">    </font><b><font color="#000000">mel:AddItem</font></b><font color="#990000">(</font><font color="#000080">nof</font><font color="#990000">)</font>
<b><font color="#0000FF">end</font></b>


<b><font color="#226622">--</font></b><b><font color="#226622"> ntlua.setenv("LUA_PATH", [[!\Plugins\lua\?.lua;!\Plugins\lua\?\?.lua]])</font></b>
<b><font color="#226622">--</font></b><b><font color="#226622"> ntlua.setenv("LUA_CPATH", [[!\Plugins\lua\?.dll;!\Plugins\lua\?\?.dll]])</font></b>

</tt></pre>
</body>
</html>
